//
//  ViewController.m
//  NSClassFormStringDemo
//
//
//
//
//  Created by mobao on 16/3/30.
//  Copyright © 2016年 mobao. All rights reserved.
//

#import "ViewController.h"
#import "MyObject.h"

#import "Calculator.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
//    Class class = NSClassFromString(@"MyObject");
//    
//    MyObject *obj = [[class alloc]init];
//    
//    [obj doSomething];
    
    /*思路：这里以创建一个计算器，实现运算方法为例：
        
        计算器类：   Calculator
        计算抽象类： Operation
        计算类 ：    Addition、Multiply
     
     
        简单工厂模式：建立一个计算抽象类：Operation，新建的计算类，如：Addition/Multiply 继承自计算抽象类。
        反射机制：在计算器实体类中，根据需要实现的逻辑：加、减、乘、除，传入计算类的类名，根据类名获取相对应的类的实例，再根据实例调用相对应的运算方法。在每个计算类中实现相对应的方法：如加、减、乘、除。
    
    */
    
    float sum = [Calculator calculate:10 number2:10 operators:@"Addition"];
    
    NSLog(@"相加：sum = %f",sum);
    
    
    float num = [Calculator calculate:10 number2:20 operators:@"Multiply"];
    
    NSLog(@"相乘：num = %f",num);
    
    
    
}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
